package tests;

import java.util.Iterator;

import junit.framework.Assert;
import junit.framework.TestCase;
import aplicacion.modelo.ColleccionDeFantasmas;
import aplicacion.modelo.Fantasma;
import aplicacion.modelo.Shadow;
import aplicacion.modelo.Tablero;

public class ShadowTest extends TestCase {
	private Tablero tablero;
	private Shadow shadow = null;
	
	protected void setUp() {
		tablero = new Tablero("./config/pantalla-test.cfg");
	}
	
	public void testCazar() {
		setUp();

		ColleccionDeFantasmas colFantasmas = tablero.getListaFantasma();
		Iterator<Fantasma> iterador = colFantasmas.iterator();		
		boolean encontrado = false;

		while(iterador.hasNext() && !encontrado)
		{
			Fantasma fantasma = iterador.next();
			if(fantasma instanceof Shadow){
				shadow = (Shadow) fantasma;
				encontrado = true;
			}
		}

		shadow.cazar();	

		while ( !ShadowAlcanzoAPacman() ) {
			shadow.vivir();
		}
		Assert.assertTrue(ShadowAlcanzoAPacman());
	}
	
	private boolean ShadowAlcanzoAPacman() {
		return shadow.getPosicion().equals(tablero.getPacman().getPosicion());
	}
}
